AD18F08 DemoCode V1.07		81Demo

*ע⣺󻯺ٲ鿴!!!!!!
  | 
AD18F08_ASM
    	ʱ0 ʱ5msжPB0תѭPA0ת
ADC
  ADC
    	ADCòɼͨΪPB6,οѹΪVDDͨڣPA1ӦADCֵ    = 9600
  ADC_CMPMODE
    	ADC1msɼһΣADCıȽжϣ1msTIMER1ʱ
    	ADCMPMODE=0ʱɼֵADCMP1HжADCMP1IF(ȼжϣPB2ת)СADCMP0HжADCMP0IFȼжϣPB5ת
  ADC_CMPMODE_1
      	ADC1msɼһβADCıȽжϣ1msTIMER1
        	ADCMPMODE=1ʱɼֵСADCMP1HҴADCMP0HжADCMP0IF,ȼжϣPB5ת
  ADC_CMPMODE_2
        	ADC1msɼһΣҲADCıȽжϣ1msTIMER1
        	ADCMPMODE=0ACEN=1ʱֻADCMP0IFȼжϣADCMP0IFPB5ת	
  ADC_CMPMODE_3
        	ʱ1ʱ1msADCвɼADCıȽжϣ
    	ADCMPMODE=1ACEN=1ʱ,ɼֵС ADCMP1H Ҵ ADCMP0H,ֻжADCMP0IFȼжϣPB5ת
  ADC_FVR
    	ʹԶɼʹFVRԶܣ
    	FVR׼ADCѡPA5ͨɼADCжϣPB0ת
ADC_NTC
        ADCòɼͨΪPB6,οѹΪVDDͨڣPA1ӦADCֵ    = 9600
FVR_BACKWARDS_VDD
        	̽òѯķʽɼFVR1.0ѹ
    	ɼFVRVDD
    	ADCʹʱע
    	лͨͲοѹҪִмοתADֵȶ
CMP
    CMP
      	ѡPA0,ѡPB2,ȽϽPA5CMPжϣPB5תPB4ֱӶȡȽϽCMPOUT
    CMP_POS
      	ѡPA0ѡPB2,ͨPA5ȽϽȥͨPB5תǷCMPȼжϲ,PB4ȡCMPOUTĽ
CONFIG   
  CONFIG0 
    FINTOSC
      	ѡFINTOSC_DIV1(RCƵΪ1),ͨPB4ǰϵͳʱ16M
    	FINTOSC_DIVֿѡƵѡ
    LVR
      	ѡLVEN_ONʹܵ͵ѹλ,͵ѹλֵѡΪ2.4V
    	VDDԼ2.4VʱICPB3ÿ10msᷭתһ  VDDԼ2.4VʱICλ ٳPB3ת
    	Ҳýֹ͵ѹλ8͵ѹλֵãɼͷļ     
  CONFIG1 
    IDIS
    	ѡ_IDIS_OFF_2L,IOģͨʱȡIOʼΪ0
    	ѡ_IDIS_ON_2L, IOģͨʱҲȡIOֵ
    	ѡ_IDIS_OFF_2LʱθPAڸߵƽPB4ÿ10msᷭת
    	ѡ_IDIS_ON_2LʱPA0ڼߵƽPB4ᷭתȡPA0ڵĸߵѹPB4ʼת
    	öȡPAܽŵֵȡΪ0ʱPB4ڿʼתȡΪ0ʱPB4޷ת
    RESETE
      	ʹⲿλ,ͨPB3͵ƽⲿλ
    	PB3ߵƽ߲κ״̬,PB4һֱǰϵͳʱ
    	PB3͵ƽʱ,ⲿܽŸλ,PB4ǰϵͳʱ   
    STVEN_ON
    	Ƕ׵Ӻ³ֶջѡֹջλʱPB4ַתѡʹܶջλʱоƬ᲻ϸλ PB4ת϶
  CONFIG2
    FCPUS
    	ѡ2Tģʽ(һָΪ)
    	ʹϵͳʱΪtmr0ļʱԴ,2Ƶ,buzzer PA420Kbuzzerź
    	Ҳѡ4Tģʽ(һָΪĸ)
    	ʹϵͳʱΪtmr0ļʱԴ,2Ƶ,buzzer PA410Kbuzzerź
    WDT
    	ÿŹʹԼŹʱϵʱʱϵͳʱλ
    	󣺽PB0зתһʱPB0ֹͣתĳPB1зת
    	忴Źʱλͷʼִ
    	ΪֹŹλʱҲᷢλ
  CONFIG3
    OSCM
    	ѡ_OSCM_HIRC_16M_4L(ڲоƬʱѡ16M),ͨPB4ǰϵͳʱ16M
    	Ҳѡ_OSCM_LIRC_2K_4L(ڲоƬʱѡ2k),ͨPB4ǰϵͳʱ2k
  DAC
    DAC_FVR
    	DACĲοѹѡFVRͨCMPбȽϣCMPѡDACѡPB7,ͨPA1PA5PB6PB1ȽϽ
    DAC_VDD
    	DACĲοѹѡVDDDACĵѹͨFVRPB3
    
  FLASH
    	ʾFLASHҳд,ȲBufݣȡӡȫFF;
    	2ֽ(16Bit)дݣ8λΪ0x0010+i,8λΪi,Ȼȡӡд(ģʽȡ)              
    	4M²Ϊ9600,FcpuϵͳʱƵʸıʱӦ֮ı䣬8MʱƵ²ӦΪ192002MʱƵ²ӦΪ4800
  FVR
    	ʾFVRѹԹܣͨѡͬͨͷŴͨPB3Ųѹ
  GPIO
    IO_CUR_SINK
    	GPIOsink()PA1PA2Ϊ(20mA)IO(3.5mA)
    IO_CUR_SINK_CUR
    	GPIOsink()PA1PA2Ϊڣ60mAIO(20mA)
    IO_CUR_SOURCE
    	GPIO(source)CURCON=0x00CURCON=0X0F,пڵsourceͬ
    IO_INT_PA_H
    	ͨPB0ķת鿴PAĸȼжǷPB0תPAڲжϣPAδж
    IO_INT_PA_H_POSEDGE_NEGEDGE
    	PAڵıжϣPAڵĸȼжϣ˫ж,ͨPB1ķת鿴PAĸȼжǷPB1תPAڲжϡPAδж
    IO_INT_PA_L
    	PAڵıжϣPAڵĵȼж,ͨPB1ķת鿴PAĵȼжǷPB1תPAڲж,PAδж
    IO_INT_PA_L _POSEDGE_NEGEDGE
    	PAڵıжϣPAڵĵȼжϣ˫ж,ͨPB1ķת鿴PAĵȼжǷPB1תPAڲжϡPAδж
    IO_INT_PB_H
    	PBڵıжϣPBڵĸȼж,ͨPA0ķת鿴PBĸȼжǷPA0תPBڲжϡPBδж
    IO_INT_PB_L
    	PBڵıжϣPBڵĵȼж,ͨPA1ķת鿴PBĵȼжǷPA1תPBڲж,PBδж
    IO_INT_PB_POSEDGE_NEGEDGE
    	PBڵıжϣPBڲ˫жϣͨPA0ķת鿴PB˫жǷPA0תPBڲжϣPBδжϣ
    IO_PD
    	RSEL_LOW(RSEL=1)  裺30K  裺30K;PAںPBڽGND,ͨñ鿴ӦIOĵݹʽR=U/I
    IO_PD_RSEL0
    	RSEL_HIG(RSEL=0) 裺100K 裺300K;PAںPBڽGND,ͨñ鿴ӦIOĵݹʽR=U/I
    IO_PU
    	RSEL_LOW(RSEL=1) 裺30K  裺30K;PAںPBڽVDD,ͨñ鿴ӦIOĵݹʽR=U/I
    IO_PU_RSEL0
    	RSEL=HIGH(RSEL=0)   0裺100K  裺300K;PAںPBڽVDD,ͨñ鿴ӦIOĵݹʽR=U/I
    IO_SMT_PA
    	رʩѡ0.7*VDD/0.3*VDDPBΪڣͨȡPBڶȡPAڵĵѹ
    	PAڴӵ͵ƽΪߵƽ0.7*VDDʹӸߵƽΪ͵ƽ0.3*VDD)ʱ鿴PBڵĵѹ
    IO_SMT_PA_0
    	رʩѡ0.4*VDD/0.2*VDDPBΪڣͨȡPBڶȡPAڵĵѹ
    	PAڴӵ͵ƽΪߵƽ0.4*VDDʹӸߵƽΪ͵ƽ0.2*VDD)ʱ鿴PBڵĵѹ
    IO_SMT_PB
    	رʩѡ0.7*VDD/0.3*VDDPAΪڣͨȡPAڶȡPBڵĵѹ
    	鿴PBڴӵ͵ƽΪߵƽ0.7*VDDʹӸߵƽΪ͵ƽ0.3*VDD)ʱ鿴PAڵĵѹ
    IO_SMT_PB_0
    	PB0Ϊڣʩѡ0.2*VDD/0.4*VDD 
       	PB1Ϊڣʩѡ0.3*VDD/0.7*VDD
       	PAڶȡPBڵѹӦƽ 
  LCD
    	ʾLCDʾ00 11 22 33 44 55 66 77 88 99
  OSC
    OSC_OUT
    	ͨPB4PA1ϵͳʱ
    OSC_TRIM
    	ͨPB4PA1ϵͳʱ
    	΢OSCTUNE[6:0]Ĵʵ׷Ƶ
  RESET_EMC
    	EMCλΪؼĴȶԸλؼĴţ
    	ʹʱEMCEN
  SLEEP
    SLEEP_CCP
    	ʾIDLE͹ģʽͨCCPȽжCCPIFлѵĹܡ
    	IDLEģʽ֮ǰIOPB2һתIDLEģʽ˯ߺIOPB2ֹͣת
    	timer1ȽϼĴCCPR1ʱCCPIFжϻѺIOPB2ٴνзת
    SLEEP_DEEPPWSAVE
    	DEEPPWASAVEģʽPB7ΪIO;DEEPPWSAVE״̬£PB7ػѣͨPB2ת鿴
    SLEEP_INT
    	ʾPWOFF͹ģʽͨⲿжŽлѵĹܡ
    	PWOFFģʽ֮ǰIOPB2һתPWOFFģʽ˯ߺIOPB2ֹͣת
    	ͨõⲿжPA2PA0PB0뷽IOĶӦ仯شѣѺIOPB2ٴνһת˯ߡ  
    SLEEP_IO
    	ʾPWOFF͹ģʽͨIOжϣPBIFлѵĹܡ
    	PWOFFģʽ֮ǰIOPB2100ηתPWOFFģʽ˯ߺIOPB2ֹͣת
    	ͨPB0仯ĸߵ͵ƽڵƽ仯ʱPBIFжϽPWOFF͹ģʽѺIOPB2ٴνзת
    SLEEP_LVD
    	ʾDEEPPWSAVE͹ģʽͨѹȽжLVDIFлѵĹܡ
    	DEEPPWSAVEģʽ֮ǰIOPB2һתDEEPPWSAVEģʽ˯ߺIOPB2ֹͣת
    	VDDѹֵѹʱLVDIFжϻDEEPPWSAVEIOPB2ٴνзת
    SLEEP_PWIDLE
    	PWIDLEDemo,PB7ΪIOPWIDLE״̬£ͨPB7شѣͨPB2ת鿴
    SLEEP_PWOFF
    	PB7ΪIO,ɲ鿴PB2ת֤PWOFF
    SLEEP_PWSAVE
    	 PWSAVEģʽPB7ΪIOPWSAVE״̬£PB7ػѣͨPB2ת鿴
    SLEEP_RST
    	 ʾPWOFF͹ģʽͨλPB3λлѵĹܡ
    	PWOFFģʽ֮ǰIOPB2һתPWOFFģʽ˯ߺIOPB2ֹͣת
    	ͨλPB3͵ƽλPWOFF󣬽λPB3ߵƽȡλ״̬IOPB2ٴνзת
    SLEEP_TMR0
    	ʾIDLE͹ģʽͨtimer0T0IFжϽлѵĹܡ
    	IDLE͹ģʽ֮ǰIOPB2һתIDLEģʽ˯ߺIOPB2ֹͣת
    	timer0жT0IFIDLE͹ģʽIOPB2ٴνзת
    SLEEP_TMR1
    	ʾDEEPPWSAVE͹ģʽͨtimer1ʱжϽлѵĹܡ	
    	DEEPPWSAVEģʽ֮ǰIOPB2һתDEEPPWSAVEģʽ˯ߺIOPB2ֹͣת
    	timer1T1IFжϻDEEPPWSAVE͹ģʽIOPB2ٴνзת
    SLEEP_TMR2
     	ʾIDLE͹ģʽͨtimer2ʱжϽлѵĹܡ
    	IDLEģʽ֮ǰIOPB2һתIDLEģʽ˯ߺIOPB2ֹͣת
    	timer2ڼĴPR2ʱT2IFжϻѺIOPB2ٴνзת
    SLEEP_TMR3
    	ʾIDLE͹ģʽͨtimer3ʱжϽлѵĹܡ
    	IDLEģʽ֮ǰIOPB2һתIDLEģʽ˯ߺIOPB2ֹͣת
    	timer3ʱT3IFжϻIDLE͹ģʽIOPB2ٴνзת 
    SLEEP_WDT
    	ʾPWSAVE͹ģʽͨWDTʱлѵĹܡ
    	PWSAVEģʽ֮ǰIOPB2һתPWSAVEģʽ˯ߺIOPB2ֹͣת
    	ͨWDTʱѺIOPB2ٴνзת
    SRAM_CLEAN
    	SRAMdemo
    	ֵľΪ˸þ洦Ĵܹת 
  TIMER0
    TIMER0_10MS
    	tmr0 10msʱ(10msһжϣѡfcpuʱӣʹܷƵƵѡ256) ÿ10ms PB1תһ
    TIMER0_BUZZER
    	tmr0buzzer(PA4)
    TIMER0_PWM
    	tmr0·PWM ƵΪ100hz ռձΪ25% PA0 PA4 PA2 PB3
  TIMER1
    TIMER1_BUZZ
    	ʾTMR1ͨPA5buzzer
    TIMER1_EDGE
    	ʾTMR1ģʽҽõͨڴӡ
    TMER1_1MS
    	ʾTMR11msʱ
    TMER1_CLKDIV
    	ʾtmr1ĲͬƵ
    TMER1_CLKSOUTCE
    	ʾòͬʱԴΪTMR1ļʱ
  TIMER2_TIMER3_CCP
    CCP_ADGO_TIMER2
    	tmr2pwmӳ䵽ϣPWM00ؽadcɼ
    	ѡػ½PA1PA2PA3PB0PB1PB2
    	ͨģ⴮(PB7)adcɼֵ
    	ע⣺Ҫزɼʱעʹڴӡ;
    CCP_ADGO_TIMER3
     	tmr3pwmӳ䵽ϣPWM00ؽadcɼѡػ½ؽвɼ
    	PA0PA1PA2PB0PB1PB2
        	UARTPB7ADCֵ  9600
          ע  ؽADCɼܣעUART 
    CCP_CMPFIT_ASTART
    	tmr2pwmӳ䵽ϣƵΪ16k16k=1/((1/Fosc)*ڣcmpout룬ΪFVROUT
    	ΪPB7ԹرգֹcmpoutΪ1ʱpwmpwmoutΪ0ʱֹpwm
    	ٴνcmpoutΪ1ʱ޷pwmPA1PA2PA3PB0PB1PB2
    CCP_CMPFIT_TIMER2
    	tmr2pwmӳ䵽ϣƵΪ16k16k=1/((1/Fosc)*ڣcmpout룬ΪPB6
    	ΪFVROUTԹرգcmpoutΪ1ʱpwmpwmoutΪ0ʱֹpwm
    	PA1PA2PA3PB0PB1PB2
    CCP_CMPFIT_TIMER3
    tmr3pwm2/3/4ӳ䵽ϣƵΪ8k8k=1/((1/Fosc)*ڣcmpout룬ΪPB6
    	ΪFVROUTԹرգcmpoutΪ1ʱpwmpwmoutΪ0ʱֹpwm
    	PA0PA1PA2PB0PB1PB2
    CCP_COM
    	CCPıȽϹѡ񣻸ݲͬıȽģʽѡ鿴PB5ADCж
         COM_MODE2COM_MODE3жϴעʹڴӡܣӰ촥;
       	鿴ADC,ɿUartӡ
    CCP_IOFIT_TIMER2
    	tmr2pwmӳ䵽ϣƵΪ16k16k=1/((1/Fosc)*ڣio룻
    	ԹرգPA0Ϊ1ʱpwmPA0Ϊ0ʱֹpwm
    	PA1PA2PA3PB0PB1PB2
    CCP_IOFIT_TIMER3
    	tmr3pwm2/3/4ӳ䵽ϣƵΪ8k8k=1/((1/Fosc)*ڣio룻
    	ԹرգPA0Ϊ1ʱpwmPA0Ϊ0ʱֹpwm
    	PA1PA2PA3PB0PB1PB2
    CCP_TIMER3_CEN
    	Timer3pwm2/3/4ӳ䵽ϺpwmĶģʽTimer3жֻpwmĸߵ͵ƽλò
    	pwmPA0PA1PA2PB0PB1PB2
    TIMER2_CEN
    	Timer2pwmӳ䵽ϵĶģʽTimer2жֻpwmĸߵ͵ƽλò
    	pwm PWM00->PB2  PWM01->PB1  PWM10->PB0  PWM11->PA3  PWM20->PA1  PWM21->PA2  
    TIMER2_DIV
    	Timer2ԤƵͺƵ 
    TIMER2_HBRIDGE
    	TIMER2Ϊڶʱf = 10KHz, PWM21_PB7PWM20_PB6PWM11_PA0PWM10_PB0PWM01_PB1PWM00_PB2
    TIMER3_CEN
    	Timer3pwm2/3/4/5ĶģʽTimer3жֻpwmĸߵ͵ƽλò
    	PA1PA2PA3PB1
    TIMER3_DIV
    	Timer3ԤƵͺƵ 
    TIMER3_HBRIDGE
    	TIMER3ΪPWMڶʱf = 500HzΪ PB2PB1PB4PA3PB6PB7  ʱΪ2.3us
    TIMER3_PWM
    	Timer3pwm2/3/4/5ռձ,PA1PA2PA3PB1















